1. Field of the Invention
The present invention relates to a system and related method providing a more robust computing environment through a program architecture that divides complex supply chain planning operations into smaller distinct tasks.
2. Background of the Invention
Numerous known techniques and devices are used to determine a time-phased replenishment plan for a multi-tiered supply chain network within an enterprise. The calculation of time-phased replenishment plans typically includes netting requirements at each location and determining dependent demand on source locations and subordinate items in a bill of material (BOM) relationship. This combination of functionality may be referred to as Material Requirements Planning (“MRP”) and Distribution Requirements Planning (“DRP”). Known MRP and DRP solutions include the co-owned U.S. Pat. No. 6,415,196 for Manufacturing Scheduling Process With Improved Modeling, Scheduling And Editing For Solving Finite Capacity Planning Problems issued on Jul. 2, 2002 and pending U.S. patent application Ser. Nos. 10/184,963 for Manufacturing Scheduling Process With Improved Modeling, Scheduling And Editing For Solving Finite Capacity Planning, Ser. No. 09/984,346 for System And Method For Inventory And Capacity Availability Management, Ser. No. 09/974,801 for System And Methods For Scheduling Manufacturing Resources, Ser. No. 09/984,347 System And Method For Supply Chain Demand Planning And Forecasting, and Ser. No. 09/984,349 for System And Method For Ensuring Order Fulfillment. The subject matters of the patent and applications the is hereby incorporated by reference in full.
A typical replenishment network 500 is depicted in FIG. 5 (prior art). In FIG. 5, items A, B, and C are sold to customers from distribution centers 530 (level 0). The distribution centers 530 are replenished from a factory 520 (level 1) that produces and ships the items A, B, and C. In producing items A, B, and C, the factory 520 uses inputs D, E, and F, which are obtained from suppliers 510 (level 2). To plan replenishment of these item in the proper sequence, a typical approach is to “level code” the SKUs. Level coding starts at a customer facing SKU level 0 and proceeds to subordinate SKUs (having a subordinate relationship either via a BOM or sourcing relationship) at levels 1 and 2. Thus, the planning problem first involves estimating inventory and demand levels for the items A B, and C at the distribution centers 530. The planning problem next examines the ability of the factory 520 to produce the items the items A B, and C as needed replenish the distribution centers 530. In this examination, the planning problem looks, for instance, to factory's ability to satisfy the estimated demand for the items (such as the factory's inventory of the inputs D, E, and F and the factory's production capacity) and the delay associated with manufacturing and transporting the items. The planning problem further looks to the ability of the factory 520 obtain additional amounts of the inputs D, E, and F from the suppliers 510 and the delays associated with this obtaining of the inputs. It should be readily apparent that these computations grow enormously complex and entailed with increasing numbers of levels and locations (i.e., increasing number of SKUs). For instance, a typical retail store may have hundreds of thousands of items, supplied from hundreds of factories and distributors, each using numerous inputs.
In general, it is very technically challenging to scale the various MRP and DRP algorithms, such as those described above, to solve large supply chain problems because of the need to process the steps in a specific, linear order. For instance, a plan to replenish an item from a source location, as described above, should first determine that all required inputs have first been obtained. Given this need to process the replenishment planning of the SKUs in very specific orders, the processing of the supply chain algorithms across multiple machines on a network generally suffers from significant overhead in coordinating processing activities between nodes. Thus, one goal of the present invention is to develop a strategy for efficient partitioning of the processing without imposing significant overhead on process management activities or generating excessive network traffic to manage the solution processing.
Modern computer hardware commonly employ a modular architecture in which the hardware device integrates separately operating components including various temporary and permanent data storage systems, input/output devices for accessing the data storage, a processor for processing the stored data, and a communication system for connecting the various components. In this way, the design and construction a computer are relatively easy since separate parts can be selected and assembled as needed. Similarly, system repairs and enhancements are relatively easy since parts can be added or removed from the system as needed. The modular architecture also generally improves performance because the individual components may be optimized to perform their relative tasks. General computer performance is also improved through the concurrent performance of multiple tasks such as concurrent data processing and storage. Computer performance may be further improved by adding additional components, such as additional processors or storage units, to share tasks. The modular hardware architecture has the added benefit of improving reliability since the parts are relatively simple devices with fewer components. Reliability of the computer system may also be improved through redundancy of components, so that the tasks performed by a failed component may be readily performed by an alternative part. For instance, various RAID-type storage systems use redundant storage systems such that loss of data at one system may be recovered in a second system.
A typical replenishment network 500 is depicted in FIG. 5 (prior art). In FIG. 5, items A, B, and C are sold to customers from distribution centers 530 (level 0) The distribution centers 530 are replenished from a factory 520 (level 1) that produces and ships the items A, B, and C. In producing items A, B, and C, the factory 520 uses inputs D, E, and F, which are obtained from suppliers 510 (level 2). To plan replenishment of these items in the proper sequence, a typical approach is to “level code” the SKUs. Level coding starts at a customer facing SKU level 0 and proceeds to subordinate SKUs (having a subordinate relationship either via a BOM or sourcing relationship) at levels 1 and 2. Thus, the planning problem first involves estimating inventory and demand levels for the items A B, and C at the distribution centers 530. The planning problem next examines the ability of the factory 520 to produce the items A B, and C as needed replenish the distribution centers 530. In this examination, the planning problem looks, for instance, to the factory's ability to satisfy the estimated demand for the items (such as the factory's inventory of the inputs D, E, and F and the factory's production capacity) and the delay associated with manufacturing and transporting the items. The planning problem further looks to the ability of the factory 520 to obtain additional amounts of the inputs D, E, and F from the suppliers 510 and the delays associated with this obtaining of the inputs. It should be readily apparent that these computations grow enormously complex and entailed with increasing numbers of levels and locations (i.e., increasing number of SKUs). For instance, a typical retail store may have hundreds of thousands of items, supplied from hundreds of factories and distributors, each using numerous inputs.
Further goals of the present invention include:                (1) Providing a highly scalable architecture for algorithms with many separable work units that can be processed in parallel;        (2) Implementing a multi-process architecture to take advantage of multiple computers;        (3) Implementing multi-threading to take advantage of multiple processors;        (4) Implementing pipelining to insulate algorithms from communication latencies;        (5) Providing fault tolerance and recoverability;        (6) Providing centralized manageability; and        (7) Providing exceptional price/performance        